// 此文件作为Generator的核心入口
// 需要导出一个继承自Yeoman Generator的类型
// Yeoman Generator在工作时会自动调用我们在此类型中定义的一些生命周期方法
// 在这些 方法中可以通过父类提供的一些工具方法实现一些功能，例如文件写入

const Generator= require('yeoman-generator')

module.exports=class extends Generator{
    prompting(){
        return this.prompt([
            {
                type:'input',
                name:'name',
                message:'Your projct name',
                default:this.appname
            }
        ]).then(answers=>{
            this.answers=answers
        })
    }
    writing(){
        // Yeoman自动在文件生成阶段调用此方法
        // // 我们这里尝试往项目目录中写入文件
        // this.fs.write(
        //     this.destinationPath('temp.txt'),
        //     Math.random().toString()
        // )

        // 通过模板方式写入文件到目标目录

        //模板文件路径
        const tmpl=this.templatePath('index.html')
        // 输出目标路径
        const output=this.destinationPath('index.html')
        // 模板数据上下文
        // const context = { title:'Helle Yeoman',success:true }
        const context = this.answers
        this.fs.copyTpl(tmpl,output,context)
    }
}